<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.7.5</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<name>Explore With Me</name>
    <modules>
        <module>stats-service</module>
		<module>ewm-service</module>
	</modules>

    <groupId>ru.practicum</groupId>
	<artifactId>explore-with-me</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>

	<properties>
		<java.version>11</java.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<configuration>
						<systemPropertyVariables>
							<spring.profiles.active>test</spring.profiles.active>
						</systemPropertyVariables>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>3.1.2</version>
					<configuration>
						<configLocation>checkstyle.xml</configLocation>
						<failOnViolation>true</failOnViolation>
						<logViolationsToConsole>true</logViolationsToConsole>
						<includeTestSourceDirectory>true</includeTestSourceDirectory>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>check</goal>
							</goals>
							<phase>compile</phase>
						</execution>
					</executions>
					<dependencies>
						<dependency>
							<groupId>com.puppycrawl.tools</groupId>
							<artifactId>checkstyle</artifactId>
							<version>10.3</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<groupId>com.github.spotbugs</groupId>
					<artifactId>spotbugs-maven-plugin</artifactId>
					<version>4.7.0.0</version>
					<configuration>
						<effort>Max</effort>
						<threshold>High</threshold>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>check</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>0.8.8</version>
					<configuration>
						<output>file</output>
					</configuration>
					<executions>
						<execution>
							<id>jacoco-initialize</id>
							<goals>
								<goal>prepare-agent</goal>
							</goals>
						</execution>
						<execution>
							<id>jacoco-check</id>
							<goals>
								<goal>check</goal>
							</goals>
							<configuration>
								<rules>
									<rule>
										<element>BUNDLE</element>
										<limits>
											<limit>
												<counter>INSTRUCTION</counter>
												<value>COVEREDRATIO</value>
												<minimum>0.01</minimum>
											</limit>
											<limit>
												<counter>LINE</counter>
												<value>COVEREDRATIO</value>
												<minimum>0.2</minimum>
											</limit>
											<limit>
												<counter>BRANCH</counter>
												<value>COVEREDRATIO</value>
												<minimum>0.2</minimum>
											</limit>
											<limit>
												<counter>COMPLEXITY</counter>
												<value>COVEREDRATIO</value>
												<minimum>0.2</minimum>
											</limit>
											<limit>
												<counter>METHOD</counter>
												<value>COVEREDRATIO</value>
												<minimum>0.2</minimum>
											</limit>
											<limit>
												<counter>CLASS</counter>
												<value>MISSEDCOUNT</value>
												<maximum>1</maximum>
											</limit>
										</limits>
									</rule>
								</rules>
							</configuration>
						</execution>
						<execution>
							<id>jacoco-site</id>
							<phase>install</phase>
							<goals>
								<goal>report</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	<profiles>
		<profile>
			<id>check</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-checkstyle-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>com.github.spotbugs</groupId>
						<artifactId>spotbugs-maven-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
			<reporting>
				<plugins>
					<plugin>
						<groupId>com.github.spotbugs</groupId>
						<artifactId>spotbugs-maven-plugin</artifactId>
					</plugin>
				</plugins>
			</reporting>
		</profile>
		<profile>
			<id>coverage</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.jacoco</groupId>
						<artifactId>jacoco-maven-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>
